﻿/// <reference path="libraries/jQuery.js" />
/// <reference path="libraries/jquery.ui.datepicker.js" />
var _util = null;
usuarioId = "";

Vaga.Url = 'Views/Cadastros/Vaga.aspx/';

function Vaga() {
    this.VagaId = 0;
    this.UsuarioId = 0;
    this.CargoId = 0;
    this.Ativo = true;
    this.SalarioOferecido = 0.0;
    this.Disponibilidade = 0;
    this.QtdVagas = 0;
    this.Status = 0;
    this.Observacoes = '';
    this.TipoVaga = "";
    this.DataInicioInscricao = new Date();
    this.DataFimInscricao = new Date();


    this.Salvar = function () {

        var json = JSON.stringify(this);
        var alerta = new Alert();
        alerta.Name = "erroGeral";
        //eS.UrlPadrao + 'Views/Cadastros/Curriculo.aspx/SalvarCurriculo',
        $.ajax({
            url: eS.UrlPadrao + Vaga.Url + 'SalvarVaga',
            type: "post",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: "{ vaga: " + json + "}",
            success: function (e) {
                if (e.d && e.d.AlertType != undefined) {
                    $("input[id$='VagaId']").val(e.d.Value);
                    alerta.Type = e.d.AlertType;
                    for (var i in e.d.Messages) {
                        alerta.AddMessage(e.d.Messages[i]);
                    }
                    if (e.d.Show && e.d.Show == true) {
                        alerta.Show();
                    }
                } else {
                    if (e.responseText) {
                        alerta.Type = 2;
                        alerta.AddMessage(e.responseText);
                    } else {
                        alerta.Type = 1;
                        alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                    }
                    alerta.Show();
                }

            },
            error: function (e) {
                alerta.Type = 1;
                alerta.AddMessage(e.responseText);
                alerta.Show();
            }
        });
    }
    return this;
}


$(function () {
    $("input[id$='btnSalvarDadosGerais']").click(function (e) {
        e.preventDefault();
        var vaga = new Vaga();
        vaga.VagaId = parseInt($("input[id$='VagaId']").val(), 10);
        vaga.Disponibilidade = parseInt($("select[id$='DisponibilidadeHorario'] option:selected").val(), 10);
        vaga.SalarioOferecido = parseFloat($("input[id$='PretencaoSalarial']").val().replace(",", "."));
        vaga.QtdVagas = parseInt($("input[id$='QtdVagas']").val(), 10);
        vaga.UsuarioId = 0;
        vaga.Ativo = true;
        vaga.CargoId = parseInt($("input[id$='CargoId']").val(), 10);
        vaga.Observacoes = $("textarea[id$='Observacoes']").val();
        vaga.TipoVaga = $("select[id$='TipoVaga']").val();
        vaga.DataInicioInscricao = $("input[id$='DataInicioInscricao']").datepicker("getDate");
        vaga.DataFimInscricao = $("input[id$='DataFimInscricao']").datepicker("getDate");

        var alerta = new Alert();
        alerta.Name = "erroGeral";
        if ($("input[id$='VagaId']").val().length > 0 && isNaN(vaga.VagaId)) {
            vaga.VagaId = -1;
            alerta.AddMessage("Código de vaga inválido");
        }
        if (isNaN(vaga.CargoId)) {
            alerta.AddMessage("Cargo inválido");
        }
        if ($("input[id$='PretencaoSalarial']").val().length > 0 && isNaN(vaga.SalarioOferecido)) {
            alerta.AddMessage("Remuneração inválida");
        }
        if (isNaN(vaga.Disponibilidade)) {
            alerta.AddMessage("Disponibilidade de horário inválido");
        }
        if (isNaN(vaga.QtdVagas)) {
            alerta.AddMessage("Número de vagas insuficientes");
        }
        if (vaga.TipoVaga == "0")
            alerta.AddMessage("Tipo da vaga inválido");
        if (vaga.DataInicioInscricao == null)
            alerta.AddMessage("Data de abertura das inscrições inválida");
        if (vaga.DataFimInscricao == null)
            alerta.AddMessage("Data de encerramento das inscrições inválida");

        if (alerta.HasMessage()) {
            alerta.Type = AlertType.Error;
            alerta.Show();
            return false;
        }
        vaga.VagaId = isNaN(vaga.VagaId) ? 0 : vaga.VagaId;
        vaga.Disponibilidade = isNaN(vaga.Disponibilidade) ? -1 : vaga.Disponibilidade;
        vaga.QtdVagas = isNaN(vaga.QtdVagas) ? -1 : vaga.QtdVagas;
        vaga.CargoId = isNaN(vaga.CargoId) ? -1 : vaga.CargoId;
        vaga.Salvar();
        return false;
    });

});


function getItemCargo(ul, item) {

    var inner_html = '<a><div class="list_item_container"><div class=""><strong>Cargo:</strong> ' +
                            item.Nome + '</div></div></a>';
    return $("<li style='width:350px'></li>")
            .data("item.autocomplete", item)
            .append(inner_html)
            .appendTo(ul);
}

function getErrorCargo(e) {
    var _alert = new Alert();
    _alert.Name = "erroGeral";
    _alert.Type = AlertType.Error;
    _alert.AddMessage(e.d ? e.d : e.responseText);
    _alert.Show();
}
function selectedItemCargo(event, ui, context) {
    var item = ui.item && ui.item.value ? ui.item : context;
    if (item.CargoId) {
        $("input[id$='CargoId']").val(item.CargoId.toString(10))
    }
}